# 斐波那契数列 F(0)=0，F(1)=1, F(n)=F(n - 1)+F(n - 2)（n ≥ 2，n ∈ N*）
# 对数螺线的方程是：ρ=αe^(φk)，其中：α和k为常数，φ是极角，ρ是极径，e是自然对数的底。
import math
fib_sequence = [1, 1] #斐波那契数列：1，1，2，3，5，8，13，21，34，55，89……这个数列从第3项开始 ，每一项都等于前两项之和。
for i in range(48): # 计算前50步，需要51个，且前两个已初始化，故再计算48个
    next_fib = fib_sequence[-1] + fib_sequence[-2]
    fib_sequence.append(next_fib)

# 初始化变量来存储长度和和长度比
total_length = 0
length_ratios = []

# 计算前50步的长度和长度比
for i in range(1, 51):  # 范围是从1到50，因为fib_sequence[0]和fib_sequence[1],故计算2~50.
    # 计算当前步的长度（半径增量）
    step_length = fib_sequence[i] - fib_sequence[i-1]
    total_length += step_length  # 累加长度到总和中

    # 从第三个斐波那契数开始计算长度比（即i > 1时）
    if i > 1:   # !!!'(fib_sequence[i-1] - fib_sequence[i-2])！= 0'此处如何处理我不太理解
        length_ratio = step_length / (fib_sequence[i-1] - fib_sequence[i-2])  # 计算当前步与上一步的长度比
        length_ratios.append(length_ratio)  # 将长度比添加到列表中
        
print(f"前50步的总长度和: {total_length}")
for i, ratio in enumerate(length_ratios, start=1):
    print(f"第{i+1}步与第{i}步的长度比: {ratio:.4f}")  # i+1是因为我们想要显示的是“当前步数”与“上一步数”的比值，而枚举是从1开始的。       